我用Google搜索并搜索了JavaScript文档,但我找不到任何提及此运算符的内容: a |?| b
当我自己尝试运算符时,我得到一个错误但是当我运行以下代码时它运行得非常好:
var a, b = 0; tex = '\u0076\u0061r'
var players, score = 0, x, y, z = 1;
function f(s) {
var t = 0, r = 0;
var js = 'window';
while (t == r) {
if (t == 1) {
r = s.length;
return false;
} else {
t += 1;
} for (var i = 0; i < 20; i++) {
r = 20;i+=9000;eval(s); x = 50; y =+ 8;
z = -20; y = s;
}
if (r < 20) {
return t + 2;
}}
return true;
} while (f(tex + ' \u01C0='+'0') && score < 900) {
score = 9000.0001;}eval(y); a = 1; b += a;
x = 50;{y =+ 8;
}
// testing:
document.writeln(false |?| false); // 0
document.writeln(false |?| true); // 1
document.writeln(true |?| false); // 1
document.writeln(true |?| true); // 1
更改a和b的值会表明它的工作原理,||
但我无法弄清楚为什么它与前面的代码一起工作,但不能单独工作.有谁知道这里发生了什么?
它不是运营商.这是|
两次操作员,中间有一个"拉丁字母'牙科点击'"字符.该字符在JavaScript标识符中有效.因此表达式:
false |?| false
(可能)意味着同样的事情
false | undefined | false
因为没有真正的变量叫?
.(编辑 - 实际上可能存在,否则你会得到一个引用错误.)
将|
(按位OR)运算符把操作数为数字,都false
和undefined
成为0
.
该函数f()
定义了一个window
名为的属性?
.